package ufpr.ees.suhck.model;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

@Entity
@NamedQueries({
    @NamedQuery(name = Atendimento.FIND_POR_PACIENTE, query = "SELECT m FROM Atendimento m "
            + "WHERE m.paciente = :paciente")
})
public class Atendimento implements Serializable {

    public static final String FIND_POR_PACIENTE = "Atendimento.findPorPaciente";
    
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @ManyToOne(optional = false)
    private Medico medico;

    @ManyToOne(optional = false)
    private Paciente paciente;

    @Size(max = 1023, message = "Diagnóstico deve ter no máximo {max} caracteres.")
    @Column(length = 1023)
    private String diagnostico;

    @Size(max = 1023, message = "Receita deve ter no máximo {max} caracteres.")
    @Column(length = 1023)
    private String receita;

    @Temporal(TemporalType.TIMESTAMP)
    private Date dataAtendimento;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Medico getMedico() {
        return medico;
    }

    public void setMedico(Medico medico) {
        this.medico = medico;
    }

    public Paciente getPaciente() {
        return paciente;
    }

    public void setPaciente(Paciente paciente) {
        this.paciente = paciente;
    }

    public String getDiagnostico() {
        return diagnostico;
    }

    public void setDiagnostico(String diagnostico) {
        this.diagnostico = diagnostico;
    }

    public String getReceita() {
        return receita;
    }

    public void setReceita(String receita) {
        this.receita = receita;
    }

    public Date getDataAtendimento() {
        return dataAtendimento;
    }

    public void setDataAtendimento(Date dataAtendimento) {
        this.dataAtendimento = dataAtendimento;
    }
    
    
}
